package com.tedu.api.thread;

import org.junit.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

/**
 * Lambda表达式: 支持接口、抽象类【匿名内部类】创建
 *              -支持结合遍历-
 */
public class LambdaAPI {
    //Lambda表达式:-支持集合遍历-
    @Test
    public void testList(){
        //List集合:重复并且有序--存数据【账号信息,IP地址】
        List<String> list=new ArrayList<String>();//盗宝  泛型写法
        list.add("cxk");list.add("m+7");list.add("dcx");
        //查看集合信息---用遍历  普通for 增强for forEach方法
        for(String o:list){//中间是: 是: 是: 是: 是: 是:
            System.out.println("增强for拿数值"+o);
        }
        // Lambda表达式支持集合--forEach()
        //list.forEach(o-> System.out.println(o));
        list.forEach(new Consumer<String>() {
            public void accept(String o) {
                System.out.println(o);
            }
        });
    }
    //Lambda表达式:支持集合遍历 Map 键值对存值
    @Test
    public void testMap(){
        Map<Integer,String> map=new HashMap<>();
        map.put(1,"刀哥");map.put(2,"虎哥");map.put(3,"团长");

       map.forEach(new BiConsumer<Integer, String>() {
            public void accept(Integer integer, String s) {
                System.out.println("🗡"+integer+"\n"+"🐓"+s);
            }
        });
        //转成Lambda方法
        map.forEach((integer, s)-> System.out.println("🗡"+integer+"\n"+"🐓"+s));
    }
    /**        👈👴
     * 1.线程两种创建方式:使用Lambda表达式完成
     * 2.ListAPI  用Lambda表达式方式完成
     * 3.找IO流--File类--FilterAPI 用Lambda表达式完成转换为匿名内部类然后转为Lambda
     *   五行代码搞腚
     * 4.找IO流--File类--FilterAPI 用Lambda表达式完成转换为匿名内部类然后转为Lambda
     * 2行
     */
}
